from .base_item import Item


class DragonArmor(Item):
    
    def __init__(self):
        super().__init__(
            name="Dragon Armor",
            description="Armor crafted from ancient dragon scales",
            rarity="legendary"
        )
        self._defense_bonus = 30
        self._health_bonus = 50
        self._mana_bonus = 20
    
    def get_item_type(self) -> str:
        return "armor"
    
    def get_special_ability(self) -> str:
        return "Dragon's Protection: 20% chance to reflect damage back to attacker"


class TigerShield(Item):
    def __init__(self):
        super().__init__(
            name="Tiger Shield",
            description="A shield made from mystical tiger hide",
            rarity="rare"
        )
        self._defense_bonus = 20
        self._health_bonus = 30
    
    def get_item_type(self) -> str:
        return "armor"
    
    def get_special_ability(self) -> str:
        return "Tiger's Resilience: +15% damage reduction"


class PhoenixRobe(Item):
    
    def __init__(self):
        super().__init__(
            name="Phoenix Robe",
            description="A robe woven from phoenix feathers",
            rarity="epic"
        )
        self._defense_bonus = 15
        self._mana_bonus = 40
        self._speed_bonus = 5
    
    def get_item_type(self) -> str:
        return "armor"
    
    def get_special_ability(self) -> str:
        return "Phoenix Rebirth: 10% chance to revive with 50% health when killed"


class ThunderGuard(Item):
    def __init__(self):
        super().__init__(
            name="Thunder Guard",
            description="Armor that crackles with electric energy",
            rarity="rare"
        )
        self._defense_bonus = 18
        self._attack_bonus = 5
    
    def get_item_type(self) -> str:
        return "armor"
    
    def get_special_ability(self) -> str:
        return "Electric Discharge: 15% chance to shock attackers"
class IceShield(Item):
    
    def __init__(self):
        super().__init__(
            name="Ice Shield",
            description="A shield made from magical ice",
            rarity="uncommon"
        )
        self._defense_bonus = 12
        self._mana_bonus = 10
    
    def get_item_type(self) -> str:
        return "armor"
    
    def get_special_ability(self) -> str:
        return "Ice Barrier: 20% chance to freeze attacker"